//////////////////////////////////////////////////////////////////////////

#ifndef _INNERPACKET_H_
#include "innerpacket.h"
#endif

//////////////////////////////////////////////////////////////////////////


InnerPacket::InnerPacket( const NetworkPacket &_packet, InnerPacket::PacketCode _packetCode)
: NetworkPacket(_packet), m_PacketCode(_packetCode)
{
}


//////////////////////////////////////////////////////////////////////////


InnerPacket::InnerPacket( const char *_data, size_t _length, PacketCode _packetCode )
: NetworkPacket(_data, _length), m_PacketCode(_packetCode)
{
}


//////////////////////////////////////////////////////////////////////////


InnerPacket::PacketCode InnerPacket::GetPacketCode() const
{
    return m_PacketCode;
}


//////////////////////////////////////////////////////////////////////////


void InnerPacket::SetPacketCode( PacketCode _code )
{
    m_PacketCode = _code;
}


//////////////////////////////////////////////////////////////////////////


void InnerPacket::PackCode()
{
    char code = static_cast<char>(m_PacketCode);
    m_Data.push_back(code);
}


//////////////////////////////////////////////////////////////////////////


InnerPacket::PacketCode InnerPacket::UnPackCode()
{
    m_PacketCode = static_cast<PacketCode>( m_Data.back() );
    m_Data.pop_back();

    return m_PacketCode;
}


//////////////////////////////////////////////////////////////////////////
